[INFO] cloning repository https://github.com/M4ckie/TurboMux
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/M4ckie/TurboMux" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FM4ckie%2FTurboMux", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FM4ckie%2FTurboMux'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7d4f5bb8ff6543fba6fa83b8eec2e30137c18b2b
[INFO] testing M4ckie/TurboMux against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FM4ckie%2FTurboMux" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/M4ckie/TurboMux
[INFO] finished tweaking git repo https://github.com/M4ckie/TurboMux
[INFO] tweaked toml for git repo https://github.com/M4ckie/TurboMux written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/M4ckie/TurboMux on toolchain f9988fefd3add01f414f52b414308e7872622fee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/M4ckie/TurboMux already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded vte v0.13.1
[INFO] [stderr]   Downloaded vte_generate_state_changes v0.1.2
[INFO] [stderr]   Downloaded instability v0.3.12
[INFO] [stderr]   Downloaded kasuari v0.4.12
[INFO] [stderr]   Downloaded pest_derive v2.8.6
[INFO] [stderr]   Downloaded pest_generator v2.8.6
[INFO] [stderr]   Downloaded pest_meta v2.8.6
[INFO] [stderr]   Downloaded shell-words v1.1.1
[INFO] [stderr]   Downloaded portable-pty v0.9.0
[INFO] [stderr]   Downloaded serial2 v0.2.34
[INFO] [stderr]   Downloaded pest v2.8.6
[INFO] [stderr]   Downloaded nix v0.28.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 783bb56e9c482e25b37644552252cfd804d0769b47c29421aac458a2bc539f77
[INFO] running `Command { std: "docker" "start" "-a" "783bb56e9c482e25b37644552252cfd804d0769b47c29421aac458a2bc539f77", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "783bb56e9c482e25b37644552252cfd804d0769b47c29421aac458a2bc539f77", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "783bb56e9c482e25b37644552252cfd804d0769b47c29421aac458a2bc539f77", kill_on_drop: false }`
[INFO] [stdout] 783bb56e9c482e25b37644552252cfd804d0769b47c29421aac458a2bc539f77
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 50a50722af92e3a43ad16c9df23758376edb96d72adaa8b1ba7c85ff0a7948ed
[INFO] running `Command { std: "docker" "start" "-a" "50a50722af92e3a43ad16c9df23758376edb96d72adaa8b1ba7c85ff0a7948ed", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling vte_generate_state_changes v0.1.2
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling jiff v0.2.23
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling vte v0.13.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling serial2 v0.2.34
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling env_filter v1.0.1
[INFO] [stderr]    Compiling env_logger v0.11.10
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling filedescriptor v0.8.3
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling portable-pty v0.9.0
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling turbomux v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.71s
[INFO] running `Command { std: "docker" "inspect" "50a50722af92e3a43ad16c9df23758376edb96d72adaa8b1ba7c85ff0a7948ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "50a50722af92e3a43ad16c9df23758376edb96d72adaa8b1ba7c85ff0a7948ed", kill_on_drop: false }`
[INFO] [stdout] 50a50722af92e3a43ad16c9df23758376edb96d72adaa8b1ba7c85ff0a7948ed
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bcf1775339592835b21ad8793721732eb34c38c45f223602c12f4007abc31c88
[INFO] running `Command { std: "docker" "start" "-a" "bcf1775339592835b21ad8793721732eb34c38c45f223602c12f4007abc31c88", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling turbomux v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]    --> src/claude/hooks.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     use std::io::Write;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/file_finder.rs:486:13
[INFO] [stdout]     |
[INFO] [stdout] 486 |         let mut ff = FileFinder::new();
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `turbomux::event::AppEvent`
[INFO] [stdout]   --> tests/integration_phase12.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use turbomux::event::AppEvent;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     /// W moves the file-explorer highlight one row towards the top.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 106 |     let root = make_temp_root("w_up");
[INFO] [stdout]     |     ---------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 138 |     /// S moves the file-explorer highlight one row towards the bottom.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 139 |     let root = make_temp_root("s_down");
[INFO] [stdout]     |     ------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:166:5
[INFO] [stdout]     |
[INFO] [stdout] 166 |     /// S at the last entry must not wrap around or panic.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 167 |     let root = make_temp_root("s_clamp");
[INFO] [stdout]     |     ------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:181:5
[INFO] [stdout]     |
[INFO] [stdout] 181 |     /// W at the first entry must not underflow.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 182 |     let root = make_temp_root("w_clamp");
[INFO] [stdout]     |     ------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:194:5
[INFO] [stdout]     |
[INFO] [stdout] 194 |     /// D on a collapsed directory expands it — children become visible in the buffer.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 195 |     let root = make_temp_root("d_expand");
[INFO] [stdout]     |     -------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:223:5
[INFO] [stdout]     |
[INFO] [stdout] 223 |     /// D on an already-expanded directory is a no-op — children remain visible.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 224 |     let root = make_temp_root("d_noop");
[INFO] [stdout]     |     ------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 | /     /// D on a file attempts to open it. Even if PTY spawn fails the focus and
[INFO] [stdout] 261 | |     /// mode transitions are attempted.  We cannot assert the file is open (no
[INFO] [stdout] 262 | |     /// real editor available in CI) but we verify the state machine transitions.
[INFO] [stdout]     | |_________________________________________________________________________________^
[INFO] [stdout] 263 |       let root = make_temp_root("d_file");
[INFO] [stdout]     |       ------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:293:5
[INFO] [stdout]     |
[INFO] [stdout] 293 |     /// A on an expanded directory collapses it — children are removed from the buffer.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 294 |     let root = make_temp_root("a_collapse");
[INFO] [stdout]     |     ---------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:325:5
[INFO] [stdout]     |
[INFO] [stdout] 325 |     /// A on a file entry navigates the selection to the nearest ancestor directory.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 326 |     let root = make_temp_root("a_parent");
[INFO] [stdout]     |     -------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:360:5
[INFO] [stdout]     |
[INFO] [stdout] 360 |     /// Space on a directory entry toggles its expanded state.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 361 |     let root = make_temp_root("space_toggle");
[INFO] [stdout]     |     ------------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:398:5
[INFO] [stdout]     |
[INFO] [stdout] 398 |     /// Space on a file entry must not change the entry count or crash.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 399 |     let root = make_temp_root("space_file_noop");
[INFO] [stdout]     |     --------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:434:5
[INFO] [stdout]     |
[INFO] [stdout] 434 |     /// F1 must cause a flash message containing "Help" to appear in the frame.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 435 |     let mut app = default_app();
[INFO] [stdout]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:455:5
[INFO] [stdout]     |
[INFO] [stdout] 455 |     /// F7 must cause a flash message mentioning "terminal" to appear in the frame.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 456 |     let mut app = default_app();
[INFO] [stdout]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:477:5
[INFO] [stdout]     |
[INFO] [stdout] 477 |     /// F11 is intentionally absent from the stub list — it must not set a flash message.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 478 |     let mut app = default_app();
[INFO] [stdout]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:495:5
[INFO] [stdout]     |
[INFO] [stdout] 495 | /     /// A Tick event clears a flash message whose Instant is older than 2 seconds.
[INFO] [stdout] 496 | |     ///
[INFO] [stdout] 497 | |     /// We manufacture an already-expired Instant by back-dating it via a helper
[INFO] [stdout] 498 | |     /// that replaces the flash_message tuple with one holding a pre-aged timestamp.
[INFO] [stdout]     | |____________________________________________________________________________________^
[INFO] [stdout] 499 |       let mut app = default_app();
[INFO] [stdout]     |       ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:517:5
[INFO] [stdout]     |
[INFO] [stdout] 517 |     /// A Tick event must NOT clear a flash message that was just set.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 518 |     let mut app = default_app();
[INFO] [stdout]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:533:5
[INFO] [stdout]     |
[INFO] [stdout] 533 | /     /// When the command palette is open the flash message must not appear in the frame,
[INFO] [stdout] 534 | |     /// even if app.flash_message is Some.
[INFO] [stdout]     | |__________________________________________^
[INFO] [stdout] 535 |       let mut app = default_app();
[INFO] [stdout]     |       ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> tests/integration_phase8.rs:576:5
[INFO] [stdout]     |
[INFO] [stdout] 576 |     /// The flash popup must appear in the bottom-right quadrant of the screen.
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 577 |     let mut app = default_app();
[INFO] [stdout]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EditorManager`
[INFO] [stdout]   --> tests/integration_phase10.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use turbomux::editor::{EditorManager, EditorTab};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `command::Command`
[INFO] [stdout]   --> tests/integration_phase10.rs:16:29
[INFO] [stdout]    |
[INFO] [stdout] 16 | use turbomux::keybindings::{command::Command, InputMode};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/integration_phase12.rs:396:9
[INFO] [stdout]     |
[INFO] [stdout] 396 |     let mut buf = buf_with_scrollback(80, 5, 10);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ClipboardBackend`
[INFO] [stdout]  --> tests/integration_phase16.rs:2:38
[INFO] [stdout]   |
[INFO] [stdout] 2 | use turbomux::clipboard::{Clipboard, ClipboardBackend};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]    --> src/claude/hooks.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     use std::io::Write;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/file_finder.rs:486:13
[INFO] [stdout]     |
[INFO] [stdout] 486 |         let mut ff = FileFinder::new();
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 10.93s
[INFO] running `Command { std: "docker" "inspect" "bcf1775339592835b21ad8793721732eb34c38c45f223602c12f4007abc31c88", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bcf1775339592835b21ad8793721732eb34c38c45f223602c12f4007abc31c88", kill_on_drop: false }`
[INFO] [stdout] bcf1775339592835b21ad8793721732eb34c38c45f223602c12f4007abc31c88
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 9492fa3bab867f7383848c01a8600ac84b5987abef5dce62b9b880b03941dd06
[INFO] running `Command { std: "docker" "start" "-a" "9492fa3bab867f7383848c01a8600ac84b5987abef5dce62b9b880b03941dd06", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]    --> src/claude/hooks.rs:145:9
[INFO] [stderr]     |
[INFO] [stderr] 145 |     use std::io::Write;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/file_finder.rs:486:13
[INFO] [stderr]     |
[INFO] [stderr] 486 |         let mut ff = FileFinder::new();
[INFO] [stderr]     |             ----^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `turbomux::event::AppEvent`
[INFO] [stderr]   --> tests/integration_phase12.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use turbomux::event::AppEvent;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/integration_phase12.rs:396:9
[INFO] [stderr]     |
[INFO] [stderr] 396 |     let mut buf = buf_with_scrollback(80, 5, 10);
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EditorManager`
[INFO] [stderr]   --> tests/integration_phase10.rs:14:24
[INFO] [stderr]    |
[INFO] [stderr] 14 | use turbomux::editor::{EditorManager, EditorTab};
[INFO] [stderr]    |                        ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `command::Command`
[INFO] [stderr]   --> tests/integration_phase10.rs:16:29
[INFO] [stderr]    |
[INFO] [stderr] 16 | use turbomux::keybindings::{command::Command, InputMode};
[INFO] [stderr]    |                             ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ClipboardBackend`
[INFO] [stderr]  --> tests/integration_phase16.rs:2:38
[INFO] [stderr]   |
[INFO] [stderr] 2 | use turbomux::clipboard::{Clipboard, ClipboardBackend};
[INFO] [stderr]   |                                      ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:105:5
[INFO] [stderr]     |
[INFO] [stderr] 105 |     /// W moves the file-explorer highlight one row towards the top.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 106 |     let root = make_temp_root("w_up");
[INFO] [stderr]     |     ---------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:138:5
[INFO] [stderr]     |
[INFO] [stderr] 138 |     /// S moves the file-explorer highlight one row towards the bottom.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 139 |     let root = make_temp_root("s_down");
[INFO] [stderr]     |     ------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:166:5
[INFO] [stderr]     |
[INFO] [stderr] 166 |     /// S at the last entry must not wrap around or panic.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 167 |     let root = make_temp_root("s_clamp");
[INFO] [stderr]     |     ------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:181:5
[INFO] [stderr]     |
[INFO] [stderr] 181 |     /// W at the first entry must not underflow.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 182 |     let root = make_temp_root("w_clamp");
[INFO] [stderr]     |     ------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:194:5
[INFO] [stderr]     |
[INFO] [stderr] 194 |     /// D on a collapsed directory expands it — children become visible in the buffer.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 195 |     let root = make_temp_root("d_expand");
[INFO] [stderr]     |     -------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:223:5
[INFO] [stderr]     |
[INFO] [stderr] 223 |     /// D on an already-expanded directory is a no-op — children remain visible.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 224 |     let root = make_temp_root("d_noop");
[INFO] [stderr]     |     ------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:260:5
[INFO] [stderr]     |
[INFO] [stderr] 260 | /     /// D on a file attempts to open it. Even if PTY spawn fails the focus and
[INFO] [stderr] 261 | |     /// mode transitions are attempted.  We cannot assert the file is open (no
[INFO] [stderr] 262 | |     /// real editor available in CI) but we verify the state machine transitions.
[INFO] [stderr]     | |_________________________________________________________________________________^
[INFO] [stderr] 263 |       let root = make_temp_root("d_file");
[INFO] [stderr]     |       ------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:293:5
[INFO] [stderr]     |
[INFO] [stderr] 293 |     /// A on an expanded directory collapses it — children are removed from the buffer.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 294 |     let root = make_temp_root("a_collapse");
[INFO] [stderr]     |     ---------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:325:5
[INFO] [stderr]     |
[INFO] [stderr] 325 |     /// A on a file entry navigates the selection to the nearest ancestor directory.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 326 |     let root = make_temp_root("a_parent");
[INFO] [stderr]     |     -------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:360:5
[INFO] [stderr]     |
[INFO] [stderr] 360 |     /// Space on a directory entry toggles its expanded state.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 361 |     let root = make_temp_root("space_toggle");
[INFO] [stderr]     |     ------------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:398:5
[INFO] [stderr]     |
[INFO] [stderr] 398 |     /// Space on a file entry must not change the entry count or crash.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 399 |     let root = make_temp_root("space_file_noop");
[INFO] [stderr]     |     --------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:434:5
[INFO] [stderr]     |
[INFO] [stderr] 434 |     /// F1 must cause a flash message containing "Help" to appear in the frame.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 435 |     let mut app = default_app();
[INFO] [stderr]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:455:5
[INFO] [stderr]     |
[INFO] [stderr] 455 |     /// F7 must cause a flash message mentioning "terminal" to appear in the frame.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 456 |     let mut app = default_app();
[INFO] [stderr]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:477:5
[INFO] [stderr]     |
[INFO] [stderr] 477 |     /// F11 is intentionally absent from the stub list — it must not set a flash message.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 478 |     let mut app = default_app();
[INFO] [stderr]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:495:5
[INFO] [stderr]     |
[INFO] [stderr] 495 | /     /// A Tick event clears a flash message whose Instant is older than 2 seconds.
[INFO] [stderr] 496 | |     ///
[INFO] [stderr] 497 | |     /// We manufacture an already-expired Instant by back-dating it via a helper
[INFO] [stderr] 498 | |     /// that replaces the flash_message tuple with one holding a pre-aged timestamp.
[INFO] [stderr]     | |____________________________________________________________________________________^
[INFO] [stderr] 499 |       let mut app = default_app();
[INFO] [stderr]     |       ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:517:5
[INFO] [stderr]     |
[INFO] [stderr] 517 |     /// A Tick event must NOT clear a flash message that was just set.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 518 |     let mut app = default_app();
[INFO] [stderr]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:533:5
[INFO] [stderr]     |
[INFO] [stderr] 533 | /     /// When the command palette is open the flash message must not appear in the frame,
[INFO] [stderr] 534 | |     /// even if app.flash_message is Some.
[INFO] [stderr]     | |__________________________________________^
[INFO] [stderr] 535 |       let mut app = default_app();
[INFO] [stderr]     |       ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> tests/integration_phase8.rs:576:5
[INFO] [stderr]     |
[INFO] [stderr] 576 |     /// The flash popup must appear in the bottom-right quadrant of the screen.
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 577 |     let mut app = default_app();
[INFO] [stderr]     |     ---------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: `turbomux` (lib test) generated 2 warnings (run `cargo fix --lib -p turbomux --tests` to apply 2 suggestions)
[INFO] [stderr] warning: `turbomux` (test "integration_phase12") generated 2 warnings (run `cargo fix --test "integration_phase12" -p turbomux` to apply 2 suggestions)
[INFO] [stderr] warning: `turbomux` (bin "turbomux" test) generated 2 warnings (2 duplicates)
[INFO] [stderr] warning: `turbomux` (test "integration_phase10") generated 2 warnings (run `cargo fix --test "integration_phase10" -p turbomux` to apply 2 suggestions)
[INFO] [stderr] warning: `turbomux` (test "integration_phase16") generated 1 warning (run `cargo fix --test "integration_phase16" -p turbomux` to apply 1 suggestion)
[INFO] [stderr] warning: `turbomux` (test "integration_phase8") generated 18 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.31s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/turbomux-1912e6f6f3d79c72)
[INFO] [stdout] 
[INFO] [stdout] running 298 tests
[INFO] [stdout] test app::tests::rect_contains_boundary_bottom_right_is_outside ... ok
[INFO] [stdout] test app::tests::rect_contains_returns_false_for_point_outside ... ok
[INFO] [stdout] test app::tests::rect_contains_returns_true_for_point_inside ... ok
[INFO] [stdout] test app::tests::rect_contains_boundary_top_left_is_inside ... ok
[INFO] [stdout] test app::tests::rect_contains_returns_false_for_zero_size_rect ... ok
[INFO] [stdout] test claude::hooks::tests::install_creates_hooks_in_empty_settings ... ok
[INFO] [stdout] test claude::hooks::tests::install_deduplicates_on_repeat ... ok
[INFO] [stdout] test claude::hooks::tests::install_preserves_other_hooks ... ok
[INFO] [stdout] test claude::hooks::tests::install_preserves_existing_settings ... ok
[INFO] [stdout] test claude::hooks::tests::remove_on_missing_file_is_ok ... ok
[INFO] [stdout] test claude::hooks::tests::remove_cleans_up_turbomux_hooks ... ok
[INFO] [stdout] test claude::hooks::tests::remove_preserves_other_hooks ... ok
[INFO] [stdout] test app::tests::apply_focus_editor_without_pane_sets_normal_mode ... ok
[INFO] [stdout] test app::tests::sidebar_visible_false_config_hides_sidebar ... ok
[INFO] [stdout] test app::tests::default_config_does_not_change_layout_defaults ... ok
[INFO] [stdout] test app::tests::sidebar_width_config_sets_layout_default ... ok
[INFO] [stdout] test app::tests::mouse_click_editor_sets_focus ... ok
[INFO] [stdout] test app::tests::apply_focus_sidebar_sets_normal_mode ... ok
[INFO] [stdout] test app::tests::with_active_terminal_mut_returns_none_when_no_terminal ... ok
[INFO] [stdout] test claude::tests::claude_activity_variants_construct_and_compare ... ok
[INFO] [stdout] test app::tests::apply_focus_terminal_without_pane_sets_normal_mode ... ok
[INFO] [stdout] test claude::tests::context_percent_computes_correctly ... ok
[INFO] [stdout] test claude::tests::context_percent_zero_when_context_length_zero ... ok
[INFO] [stdout] test app::tests::mouse_click_terminal_sets_focus ... ok
[INFO] [stdout] test claude::tests::claude_activity_entry_tracks_timestamp ... ok
[INFO] [stdout] test claude::socket::tests::socket_file_is_created ... ok
[INFO] [stdout] test app::tests::mouse_click_sidebar_sets_focus ... ok
[INFO] [stdout] test claude::tests::crew_member_extracted_from_agent_tool_use ... ok
[INFO] [stdout] test claude::tests::empty_file_returns_default_metrics ... ok
[INFO] [stdout] test claude::tests::session_start_comes_from_first_non_sidechain_entry ... ok
[INFO] [stdout] test claude::tests::multiple_entries_accumulate_tokens ... ok
[INFO] [stdout] test claude::tests::sidechain_entries_are_excluded ... ok
[INFO] [stdout] test claude::tests::total_tokens_sums_input_and_output ... ok
[INFO] [stdout] test clipboard::tests::base64_hello ... ok
[INFO] [stdout] test clipboard::tests::base64_empty ... ok
[INFO] [stdout] test claude::tests::sidechain_false_is_not_excluded ... ok
[INFO] [stdout] test app::tests::drag_state_set_on_border_click ... ok
[INFO] [stdout] test app::tests::drag_state_cleared_on_mouse_up ... ok
[INFO] [stdout] test claude::tests::crew_member_not_set_for_unknown_subagent_type ... ok
[INFO] [stdout] test claude::tests::malformed_line_is_skipped_without_error ... ok
[INFO] [stdout] test clipboard::tests::base64_hello_world ... ok
[INFO] [stdout] test claude::tests::model_reflects_most_recent_entry ... ok
[INFO] [stdout] ]52;c;dGVzdCB0ZXh0test app::tests::editor_config_override_takes_precedence_over_env_var ... ok
[INFO] [stdout] test app::tests::terminal_panel_visible_false_config_hides_panel ... ok
[INFO] [stdout] test clipboard::tests::base64_two_bytes ... ok
[INFO] [stdout] test clipboard::tests::base64_three_bytes_exact ... ok
[INFO] [stdout] test clipboard::tests::base64_single_byte ... ok
[INFO] [stdout] test clipboard::tests::copy_paste_roundtrip_internal ... ok
[INFO] [stdout] test claude::tests::single_valid_entry_extracts_tokens ... ok
[INFO] [stdout] test clipboard::tests::copy_overwrites_previous_internal ... ok
[INFO] [stdout] test clipboard::tests::copy_with_osc52_non_internal_backend_no_panic ... ok
[INFO] [stdout] test clipboard::tests::copy_with_osc52_updates_internal ... ok
[INFO] [stdout] test config::tests::build_command_appends_file_path_to_args ... ok
[INFO] [stdout] test config::tests::build_command_returns_correct_command_string ... ok
[INFO] [stdout] test config::tests::build_command_with_base_args_keeps_order ... ok
[INFO] [stdout] test config::tests::detect_prefers_visual_over_editor ... ok
[INFO] [stdout] test config::tests::detect_uses_editor_env_var ... ok
[INFO] [stdout] test config::tests::editor_name_extracted_from_full_path ... ok
[INFO] [stdout] test clipboard::tests::copy_with_osc52_oversized_still_copies_internal ... ok
[INFO] [stdout] test claude::socket::tests::client_can_send_json_and_event_arrives ... ok
[INFO] [stdout] test config::tests::embedded_args_in_editor_are_split_correctly ... ok
[INFO] [stdout] test config_file::tests::default_has_all_fields_none ... ok
[INFO] [stdout] test claude::socket::tests::malformed_json_does_not_crash ... ok
[INFO] [stdout] test config_file::tests::load_with_nonexistent_file_returns_default ... ok
[INFO] [stdout] test config_file::tests::invalid_toml_returns_default_without_panicking ... ok
[INFO] [stdout] test editor::tests::active_pane_id_returns_pane_of_active_tab ... ok
[INFO] [stdout] test config_file::tests::valid_toml_populates_fields ... ok
[INFO] [stdout] test editor::tests::add_tab_creates_tab_and_sets_active ... ok
[INFO] [stdout] test editor::tests::add_tab_derives_title_from_filename ... ok
[INFO] [stdout] test editor::tests::add_tab_second_tab_becomes_active ... ok
[INFO] [stdout] test editor::tests::add_tab_sets_split_tree_to_leaf_of_pane ... ok
[INFO] [stdout] test editor::tests::close_tab_adjusts_active_to_last_remaining ... ok
[INFO] [stdout] test editor::tests::close_tab_removes_and_returns_pane_id ... ok
[INFO] [stdout] test clipboard::tests::clipboard_new_smoke ... ok
[INFO] [stdout] test editor::tests::close_tab_sets_active_none_when_all_tabs_gone ... ok
[INFO] [stdout] test editor::tests::close_tab_when_empty_returns_none ... ok
[INFO] [stdout] test editor::tests::find_tab_by_path_returns_correct_index ... ok
[INFO] [stdout] test editor::tests::find_tab_by_path_returns_none_for_unknown_path ... ok
[INFO] [stdout] test editor::tests::owns_pane_returns_true_for_registered_pane ... ok
[INFO] [stdout] test editor::tests::owns_pane_returns_false_for_unknown_pane ... ok
[INFO] [stdout] test editor::tests::split_tree_leaf_compute_rects_returns_single_rect ... ok
[INFO] [stdout] test editor::tests::split_tree_hsplit_ratio_controls_proportions ... ok
[INFO] [stdout] test event::tests::app_event_mouse_variant_constructs ... ok
[INFO] [stdout] test editor::tests::split_tree_hsplit_compute_rects_returns_two_rects ... ok
[INFO] [stdout] test event::tests::app_event_key_variant_constructs ... ok
[INFO] [stdout] test event::tests::app_event_pty_output_variant_constructs ... ok
[INFO] [stdout] test event::tests::app_event_resize_variant_constructs ... ok
[INFO] [stdout] test event::tests::app_event_tick_variant_constructs ... ok
[INFO] [stdout] test event::tests::app_event_pty_exit_variant_constructs ... ok
[INFO] [stdout] test file_explorer::tests::ensure_visible_scrolls_down_when_selected_is_below_viewport ... ok
[INFO] [stdout] test file_explorer::tests::read_dir_sorted_on_missing_path_returns_empty ... ok
[INFO] [stdout] test file_explorer::tests::ensure_visible_scrolls_up_when_selected_is_above_viewport ... ok
[INFO] [stdout] test file_explorer::tests::move_down_clamps_at_last_entry ... ok
[INFO] [stdout] test file_explorer::tests::ensure_visible_does_nothing_when_already_in_view ... ok
[INFO] [stdout] test file_explorer::tests::scroll_up_at_zero_stays_zero ... ok
[INFO] [stdout] test file_explorer::tests::read_dir_sorted_dirs_come_before_files ... ok
[INFO] [stdout] test file_explorer::tests::scroll_up_decrements_offset ... ok
[INFO] [stdout] test file_explorer::tests::move_down_advances_selection ... ok
[INFO] [stdout] test file_explorer::tests::read_dir_sorted_alphabetical_within_each_group ... ok
[INFO] [stdout] test file_explorer::tests::ensure_visible_zero_height_is_a_noop ... ok
[INFO] [stdout] test file_explorer::tests::scroll_down_empty_entries_does_not_panic ... ok
[INFO] [stdout] test file_explorer::tests::move_up_clamps_at_zero ... ok
[INFO] [stdout] test file_explorer::tests::scroll_down_at_max_stays_clamped ... ok
[INFO] [stdout] test file_explorer::tests::scroll_down_increments_offset ... ok
[INFO] [stdout] test file_finder::tests::confirm_on_empty_filtered_returns_none ... ok
[INFO] [stdout] test file_explorer::tests::select_returns_none_for_directory ... ok
[INFO] [stdout] test file_explorer::tests::select_returns_path_for_file ... ok
[INFO] [stdout] test file_explorer::tests::toggle_expand_on_expanded_dir_removes_children ... ok
[INFO] [stdout] test file_finder::tests::new_starts_not_visible ... ok
[INFO] [stdout] test file_finder::tests::new_starts_with_empty_all_files ... ok
[INFO] [stdout] test file_finder::tests::new_starts_with_empty_input ... ok
[INFO] [stdout] test file_explorer::tests::toggle_expand_on_file_is_a_noop ... ok
[INFO] [stdout] test file_finder::tests::git_directory_excluded ... ok
[INFO] [stdout] test file_finder::tests::close_sets_not_visible ... ok
[INFO] [stdout] test file_explorer::tests::toggle_expand_on_dir_inserts_children ... ok
[INFO] [stdout] test file_finder::tests::move_down_advances_selection ... ok
[INFO] [stdout] test file_finder::tests::open_resets_selection ... ok
[INFO] [stdout] test file_finder::tests::pop_char_broadens_results ... ok
[INFO] [stdout] test file_finder::tests::push_char_filters_results_for_main ... ok
[INFO] [stdout] test file_finder::tests::empty_query_shows_all_files ... ok
[INFO] [stdout] test file_finder::tests::confirm_returns_selected_path ... ok
[INFO] [stdout] test git::tests::git_status_can_be_cloned ... ok
[INFO] [stdout] test git::tests::git_status_debug_format ... ok
[INFO] [stdout] test keybindings::command::tests::all_descriptions_are_unique ... ok
[INFO] [stdout] test keybindings::command::tests::all_returns_27_variants ... ok
[INFO] [stdout] test keybindings::command::tests::all_names_are_unique ... ok
[INFO] [stdout] test git::tests::git_status_default_produces_empty_values ... ok
[INFO] [stdout] test keybindings::command::tests::every_variant_has_non_empty_description ... ok
[INFO] [stdout] test keybindings::palette::tests::close_sets_not_visible ... ok
[INFO] [stdout] test file_finder::tests::move_down_clamps_at_last ... ok
[INFO] [stdout] test keybindings::command::tests::every_variant_has_non_empty_name ... ok
[INFO] [stdout] test keybindings::palette::tests::confirm_does_not_close_palette ... ok
[INFO] [stdout] test file_finder::tests::target_directory_excluded ... ok
[INFO] [stdout] test file_finder::tests::move_up_decrements_selection ... ok
[INFO] [stdout] test file_finder::tests::move_up_clamps_at_zero ... ok
[INFO] [stdout] test keybindings::palette::tests::confirm_on_empty_list_returns_none ... ok
[INFO] [stdout] test keybindings::palette::tests::confirm_returns_selected_command ... ok
[INFO] [stdout] test keybindings::palette::tests::excluded_commands_never_appear_after_filtering ... ok
[INFO] [stdout] test keybindings::palette::tests::is_palette_command_returns_false_for_close_pane_focused ... ok
[INFO] [stdout] test keybindings::palette::tests::is_palette_command_returns_false_for_split_vertical ... ok
[INFO] [stdout] test keybindings::palette::tests::is_palette_command_returns_false_for_zoom_pane ... ok
[INFO] [stdout] test keybindings::palette::tests::is_palette_command_returns_true_for_normal_command ... ok
[INFO] [stdout] test keybindings::palette::tests::is_palette_command_returns_false_for_split_horizontal ... ok
[INFO] [stdout] test keybindings::palette::tests::move_selection_down_advances_index ... ok
[INFO] [stdout] test keybindings::palette::tests::new_is_not_visible ... ok
[INFO] [stdout] test file_finder::tests::open_resets_input ... ok
[INFO] [stdout] test keybindings::palette::tests::move_selection_down_clamps_at_last_item ... ok
[INFO] [stdout] test keybindings::palette::tests::open_clears_input ... ok
[INFO] [stdout] test keybindings::palette::tests::new_has_all_commands_unfiltered ... ok
[INFO] [stdout] test file_finder::tests::node_modules_directory_excluded ... ok
[INFO] [stdout] test file_finder::tests::open_populates_all_files ... ok
[INFO] [stdout] test keybindings::palette::tests::move_selection_up_clamps_at_zero ... ok
[INFO] [stdout] test keybindings::palette::tests::move_selection_up_decrements_index ... ok
[INFO] [stdout] test keybindings::palette::tests::open_excludes_four_commands ... ok
[INFO] [stdout] test keybindings::palette::tests::open_resets_selection_to_zero ... ok
[INFO] [stdout] test keybindings::palette::tests::pop_char_on_empty_input_does_not_panic ... ok
[INFO] [stdout] test keybindings::palette::tests::pop_char_re_expands_filter ... ok
[INFO] [stdout] test file_finder::tests::open_sets_visible ... ok
[INFO] [stdout] test keybindings::palette::tests::open_excluded_commands_never_appear ... ok
[INFO] [stdout] test keybindings::palette::tests::open_sets_visible ... ok
[INFO] [stdout] test keybindings::palette::tests::empty_input_returns_all_non_excluded_commands ... ok
[INFO] [stdout] test keybindings::palette::tests::pop_char_removes_last_character ... ok
[INFO] [stdout] test keybindings::tests::ctrl_space_enters_prefix_mode_from_passthrough ... ok
[INFO] [stdout] test keybindings::palette::tests::push_char_triggers_filtering ... ok
[INFO] [stdout] test keybindings::tests::enter_mode_stores_previous_mode ... ok
[INFO] [stdout] test keybindings::tests::exit_to_previous_restores_prior_mode ... ok
[INFO] [stdout] test keybindings::tests::f10_returns_flash_command_palette ... ok
[INFO] [stdout] test keybindings::tests::f11_not_handled_returns_consumed ... ok
[INFO] [stdout] test keybindings::tests::f12_returns_flash_zoom_pane ... ok
[INFO] [stdout] test keybindings::tests::check_timeout_returns_false_when_not_in_prefix_mode ... ok
[INFO] [stdout] test keybindings::palette::tests::filtering_terminal_returns_only_terminal_commands ... ok
[INFO] [stdout] test keybindings::palette::tests::push_char_appends_to_input ... ok
[INFO] [stdout] test keybindings::tests::ctrl_space_enters_prefix_mode_from_normal ... ok
[INFO] [stdout] test keybindings::tests::enter_mode_changes_current_mode ... ok
[INFO] [stdout] test keybindings::tests::f3_returns_flash_find_in_file ... ok
[INFO] [stdout] test keybindings::tests::f2_returns_flash_rename_file ... ok
[INFO] [stdout] test keybindings::tests::f4_returns_flash_toggle_sidebar ... ok
[INFO] [stdout] test keybindings::tests::f5_executes_cycle_status_bar_theme ... ok
[INFO] [stdout] test keybindings::tests::f7_returns_flash_new_terminal ... ok
[INFO] [stdout] test keybindings::tests::f6_returns_flash_cycle_focus ... ok
[INFO] [stdout] test keybindings::tests::fkey_in_prefix_mode_cancels_prefix_and_returns_flash ... ok
[INFO] [stdout] test keybindings::tests::f8_returns_flash_close_tab ... ok
[INFO] [stdout] test keybindings::tests::fkey_with_modifier_not_intercepted ... ok
[INFO] [stdout] test keybindings::tests::prefix_e_executes_focus_sidebar ... ok
[INFO] [stdout] test keybindings::tests::prefix_esc_returns_consumed_and_exits_prefix_mode ... ok
[INFO] [stdout] test keybindings::tests::prefix_h_executes_move_focus_left_and_exits_prefix_mode ... ok
[INFO] [stdout] test keybindings::tests::prefix_n_executes_new_terminal ... ok
[INFO] [stdout] test keybindings::tests::prefix_p_executes_open_command_palette ... ok
[INFO] [stdout] test keybindings::tests::f1_returns_flash_help ... ok
[INFO] [stdout] test keybindings::tests::f9_returns_flash_toggle_terminal_panel ... ok
[INFO] [stdout] test keybindings::tests::new_starts_in_normal_mode ... ok
[INFO] [stdout] test keybindings::tests::normal_mode_q_executes_quit ... ok
[INFO] [stdout] test keybindings::tests::passthrough_mode_regular_key_returns_pass_to_focused ... ok
[INFO] [stdout] test keybindings::tests::prefix_w_executes_close_tab ... ok
[INFO] [stdout] test layout::tab_bar::tests::active_title_on_empty_tabs_returns_empty_string ... ok
[INFO] [stdout] test keybindings::tests::prefix_unknown_key_returns_consumed_and_exits_prefix_mode ... ok
[INFO] [stdout] test layout::tab_bar::tests::active_title_returns_correct_string ... ok
[INFO] [stdout] test layout::tab_bar::tests::add_tab_appends_to_the_end ... ok
[INFO] [stdout] test layout::tab_bar::tests::default_has_one_welcome_tab_at_index_zero ... ok
[INFO] [stdout] test layout::tab_bar::tests::remove_active_tab_clamps_active_index ... ok
[INFO] [stdout] test layout::tab_bar::tests::remove_tab_out_of_bounds_is_a_noop ... ok
[INFO] [stdout] test layout::tab_bar::tests::remove_tab_shrinks_list ... ok
[INFO] [stdout] test layout::tab_bar::tests::set_active_clamps_to_valid_range ... ok
[INFO] [stdout] test layout::tab_bar::tests::set_active_moves_to_valid_index ... ok
[INFO] [stdout] test layout::tests::both_toggled_off_leaves_only_tab_bar_and_editor_area ... ok
[INFO] [stdout] test pty::buffer::tests::apply_sgr_256_color_bg ... ok
[INFO] [stdout] test pty::buffer::tests::apply_sgr_bold_sets_bold_flag ... ok
[INFO] [stdout] test pty::buffer::tests::apply_sgr_256_color_fg ... ok
[INFO] [stdout] test pty::buffer::tests::apply_sgr_reset_zeroes_all_attributes ... ok
[INFO] [stdout] test pty::buffer::tests::apply_sgr_standard_fg_colors_30_to_37 ... ok
[INFO] [stdout] test pty::buffer::tests::apply_sgr_truecolor_bg ... ok
[INFO] [stdout] test pty::buffer::tests::apply_sgr_truecolor_fg ... ok
[INFO] [stdout] test pty::buffer::tests::char_at_out_of_bounds_col_returns_space ... ok
[INFO] [stdout] test pty::buffer::tests::carriage_return_sets_col_to_zero ... ok
[INFO] [stdout] test pty::buffer::tests::char_at_out_of_bounds_row_returns_space ... ok
[INFO] [stdout] test pty::buffer::tests::char_at_returns_char_in_scrollback ... ok
[INFO] [stdout] test pty::buffer::tests::erase_in_display_mode_2_clears_all_cells ... ok
[INFO] [stdout] test layout::tests::default_state_produces_all_four_regions ... ok
[INFO] [stdout] test pty::buffer::tests::erase_in_display_mode_3_also_clears_scrollback ... ok
[INFO] [stdout] test pty::buffer::tests::erase_in_line_mode_0_clears_from_cursor_to_end ... ok
[INFO] [stdout] test pty::buffer::tests::erase_in_line_mode_2_clears_entire_line ... ok
[INFO] [stdout] test layout::tests::status_bar_x_and_width_span_full_area_width ... ok
[INFO] [stdout] test pty::buffer::tests::move_cursor_to_clamps_col_to_cols_minus_one ... ok
[INFO] [stdout] test pty::buffer::tests::move_cursor_to_exact_position ... ok
[INFO] [stdout] test pty::buffer::tests::new_creates_correct_dimensions ... ok
[INFO] [stdout] test pty::buffer::tests::new_cursor_starts_at_origin ... ok
[INFO] [stdout] test pty::buffer::tests::move_cursor_to_clamps_row_to_rows_minus_one ... ok
[INFO] [stdout] test layout::tests::status_bar_is_always_one_row_tall ... ok
[INFO] [stdout] test pty::buffer::tests::new_scroll_region_covers_full_screen ... ok
[INFO] [stdout] test layout::tests::toggle_sidebar_off_hides_sidebar_and_editor_fills_width ... ok
[INFO] [stdout] test pty::buffer::tests::char_at_returns_char_in_grid ... ok
[INFO] [stdout] test pty::buffer::tests::newline_not_at_bottom_moves_cursor_down ... ok
[INFO] [stdout] test pty::buffer::tests::process_bytes_plain_text_appears_on_grid ... ok
[INFO] [stdout] test pty::buffer::tests::process_bytes_erase_display_2j_clears_screen ... ok
[INFO] [stdout] test pty::buffer::tests::put_char_at_col_boundary_wraps_to_next_line ... ok
[INFO] [stdout] test pty::buffer::tests::process_bytes_sgr_color_sequence ... ok
[INFO] [stdout] test pty::buffer::tests::newline_at_bottom_scrolls_and_preserves_scrollback ... ok
[INFO] [stdout] test pty::buffer::tests::scroll_up_inserts_blank_row_at_bottom ... ok
[INFO] [stdout] test pty::buffer::tests::put_char_writes_to_current_position ... ok
[INFO] [stdout] test layout::tests::toggle_bottom_panel_off_hides_bottom_panel_and_main_fills_height ... ok
[INFO] [stdout] test layout::tests::tab_bar_is_always_one_row_tall ... ok
[INFO] [stdout] test layout::tests::sidebar_width_respects_percent_setting ... ok
[INFO] [stdout] test pty::buffer::tests::put_char_advances_cursor_col ... ok
[INFO] [stdout] test pty::buffer::tests::tab_advances_to_next_multiple_of_8_from_col_3 ... ok
[INFO] [stdout] test pty::buffer::tests::tab_advances_to_next_multiple_of_8_from_col_8 ... ok
[INFO] [stdout] test pty::buffer::tests::tab_clamps_at_last_col ... ok
[INFO] [stdout] test pty::buffer::tests::tab_advances_to_next_multiple_of_8_from_col_0 ... ok
[INFO] [stdout] test pty::keys::tests::arrow_down_encodes_as_esc_bracket_b ... ok
[INFO] [stdout] test pty::buffer::tests::scroll_up_moves_top_row_to_scrollback ... ok
[INFO] [stdout] test pty::keys::tests::arrow_left_encodes_as_esc_bracket_d ... ok
[INFO] [stdout] test pty::keys::tests::arrow_right_encodes_as_esc_bracket_c ... ok
[INFO] [stdout] test pty::keys::tests::arrow_up_encodes_as_esc_bracket_a ... ok
[INFO] [stdout] test pty::keys::tests::backspace_encodes_as_del_byte ... ok
[INFO] [stdout] test layout::tests::all_vertical_regions_sum_to_area_height ... ok
[INFO] [stdout] test pty::keys::tests::ctrl_c_encodes_as_byte_3 ... ok
[INFO] [stdout] test pty::keys::tests::ctrl_a_encodes_as_byte_1 ... ok
[INFO] [stdout] test pty::keys::tests::enter_encodes_as_carriage_return ... ok
[INFO] [stdout] test pty::keys::tests::escape_encodes_as_byte_27 ... ok
[INFO] [stdout] test pty::keys::tests::f5_encodes_as_esc_bracket_15_tilde ... ok
[INFO] [stdout] test pty::keys::tests::ctrl_uppercase_c_also_encodes_as_byte_3 ... ok
[INFO] [stdout] test pty::keys::tests::f1_encodes_as_esc_o_p ... ok
[INFO] [stdout] test pty::keys::tests::regular_char_a_encodes_as_byte_97 ... ok
[INFO] [stdout] test pty::keys::tests::regular_char_z_encodes_correctly ... ok
[INFO] [stdout] test pty::keys::tests::ctrl_z_encodes_as_byte_26 ... ok
[INFO] [stdout] test pty::keys::tests::unknown_key_returns_none ... ok
[INFO] [stdout] test session::tests::backward_compat_old_file_without_any_known_field ... ok
[INFO] [stdout] test claude::socket::tests::multiple_concurrent_connections ... ok
[INFO] [stdout] test terminal_panel::tests::active_pane_id_on_empty_returns_none ... ok
[INFO] [stdout] test pty::keys::tests::shift_up_encodes_with_modifier_code_2 ... ok
[INFO] [stdout] test session::tests::zero_terminals_saved_produces_empty_vec ... ok
[INFO] [stdout] test terminal_panel::tests::active_pane_id_returns_pane_of_active_terminal ... ok
[INFO] [stdout] test terminal_panel::tests::new_active_terminal_starts_at_zero ... ok
[INFO] [stdout] test terminal_panel::tests::new_creates_empty_panel ... ok
[INFO] [stdout] test session::tests::load_returns_none_when_file_missing ... ok
[INFO] [stdout] test session::tests::save_and_load_round_trip_editor_files ... ok
[INFO] [stdout] test session::tests::backward_compat_old_file_without_terminals_field ... ok
[INFO] [stdout] test session::tests::save_creates_dot_turbomux_directory ... ok
[INFO] [stdout] test session::tests::load_returns_none_on_corrupt_json ... ok
[INFO] [stdout] test session::tests::save_and_load_round_trip_terminals ... ok
[INFO] [stdout] test session::tests::load_returns_none_on_empty_file ... ok
[INFO] [stdout] test terminal_panel::tests::new_split_mode_is_single ... ok
[INFO] [stdout] test terminal_panel::tests::next_terminal_advances_index ... ok
[INFO] [stdout] test terminal_panel::tests::next_terminal_wraps_around_to_zero ... ok
[INFO] [stdout] test terminal_panel::tests::owns_pane_returns_false_for_unknown_pane_id ... ok
[INFO] [stdout] test terminal_panel::tests::next_then_prev_returns_to_original_index ... ok
[INFO] [stdout] test terminal_panel::tests::owns_pane_returns_false_when_panel_is_empty ... ok
[INFO] [stdout] test terminal_panel::tests::prev_terminal_decrements_index ... ok
[INFO] [stdout] test terminal_panel::tests::owns_pane_returns_true_for_known_pane ... ok
[INFO] [stdout] test terminal_panel::tests::prev_terminal_on_empty_panel_does_not_panic ... ok
[INFO] [stdout] test terminal_panel::tests::toggle_split_horizontal_becomes_single ... ok
[INFO] [stdout] test terminal_panel::tests::toggle_split_single_becomes_horizontal ... ok
[INFO] [stdout] test session::tests::nonexistent_terminal_cwd_falls_back_to_project_root ... ok
[INFO] [stdout] test terminal_panel::tests::prev_terminal_wraps_around_to_last ... ok
[INFO] [stdout] test config::tests::detect_falls_back_to_vim_when_env_unset ... FAILED
[INFO] [stdout] test terminal_panel::tests::next_terminal_on_empty_panel_does_not_panic ... ok
[INFO] [stdout] test keybindings::tests::check_timeout_returns_false_when_prefix_entered_recently ... ok
[INFO] [stdout] test layout::tests::status_bar_y_is_flush_with_bottom_of_area ... ok
[INFO] [stdout] test claude::socket::tests::socket_cleaned_up_on_drop ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- config::tests::detect_falls_back_to_vim_when_env_unset stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'config::tests::detect_falls_back_to_vim_when_env_unset' (178) panicked at src/config.rs:74:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: "emacs"
[INFO] [stdout]  right: "vim"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5747d849316a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5747d849316a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized::<std[1209cfb42f6d497f]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5747d849316a - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5747d849316a - <<std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5747d84aa9da - <core[4a92201981c6b77a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5747d84aa9da - core[4a92201981c6b77a]::fmt::write
[INFO] [stdout]    6:     0x5747d8498782 - std[1209cfb42f6d497f]::io::default_write_fmt::<alloc[420bb310a727dfd7]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x5747d8498782 - <alloc[420bb310a727dfd7]::vec::Vec<u8> as std[1209cfb42f6d497f]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x5747d846eaff - <std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5747d846eaff - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5747d848a179 - std[1209cfb42f6d497f]::panicking::default_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5747d834046c - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x5747d834046c - test[59e67a9bc0e119f1]::test_main_inner::<test[59e67a9bc0e119f1]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5747d848a332 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x5747d848a332 - std[1209cfb42f6d497f]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5747d846ebb8 - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5747d8463449 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace::<std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5747d846fb7d - __rustc[4effac393e9f3da6]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5747d84ab1cc - core[4a92201981c6b77a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5747d84ab053 - core[4a92201981c6b77a]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x5747d820189a - core[4a92201981c6b77a]::panicking::assert_failed::<alloc[420bb310a727dfd7]::string::String, &str>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x5747d820ea04 - turbomux[5b954585becec234]::config::tests::detect_falls_back_to_vim_when_env_unset
[INFO] [stdout]                                at /opt/rustwide/workdir/src/config.rs:74:9
[INFO] [stdout]   22:     0x5747d8208e07 - turbomux[5b954585becec234]::config::tests::detect_falls_back_to_vim_when_env_unset::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/config.rs:66:49
[INFO] [stdout]   23:     0x5747d81fdd96 - <turbomux[5b954585becec234]::config::tests::detect_falls_back_to_vim_when_env_unset::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5747d833374b - <fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5747d833374b - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stdout]   26:     0x5747d8340f3b - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5747d8340f3b - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5747d8340f3b - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5747d8340f3b - std[1209cfb42f6d497f]::panicking::catch_unwind::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5747d8340f3b - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5747d8340f3b - test[59e67a9bc0e119f1]::run_test_in_process
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5747d8340f3b - test[59e67a9bc0e119f1]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5747d833a654 - test[59e67a9bc0e119f1]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5747d833a654 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5747d8343b42 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5747d8343b42 - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5747d8343b42 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5747d8343b42 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5747d8343b42 - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5747d8343b42 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5747d8343b42 - <std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5747d849252f - <alloc[420bb310a727dfd7]::boxed::Box<dyn core[4a92201981c6b77a]::ops::function::FnOnce<(), Output = ()> + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   43:     0x5747d849252f - <std[1209cfb42f6d497f]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x776d92362aa4 - <unknown>
[INFO] [stdout]   45:     0x776d923efa64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     config::tests::detect_falls_back_to_vim_when_env_unset
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 297 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9492fa3bab867f7383848c01a8600ac84b5987abef5dce62b9b880b03941dd06", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9492fa3bab867f7383848c01a8600ac84b5987abef5dce62b9b880b03941dd06", kill_on_drop: false }`
[INFO] [stdout] 9492fa3bab867f7383848c01a8600ac84b5987abef5dce62b9b880b03941dd06
